The CoGenT Project: Co-Generating Compilers and Simulators for Dynamically Compiled Languages
نویسندگان
چکیده
To understand the performance of modern Java systems one must observe execution in the context of specific architectures. It is also important that we make these observations using a compiler that is capable of producing optimizations that are specialized to the target machine. Current architectural simulators, however, provide little or no support for dynamically compiled languages and their environments. Experimenting with innovative architectural ideas requires modifications not only to the simulator, but to the compiler backend as well. Currently, it is difficult if not impossible to accomplish exploration of this sort. This paper proposes a system for the coordinated effort of generating simulators and matching compiler backends automatically from machine descriptions. Machine descriptions are processed by tools to produce efficient compiler and simulator components and these components “plug in” to an existing framework. This system provides an exploratory environment for compiler writers, computer architects, and students, while maintaining the performance and flexibility required for evaluating real systems.
منابع مشابه
Generation Of Interpretive Compiled Instruction Set Simulators
pydgin A (Py)thon (D)SL for (G)enerating (In)struction set simulators. executable provides a trace-JIT to dynamically compile frequently interpreted hot title = (Pydgin: Generating Fast Instruction Set Simulators from Simple Architecture. the behavior of the instruction set simulator with less than 1000 lines of C code (12) R. Leupers, et. al, "Generation of interpretive and compiled instructio...
متن کاملEpic - A Library for Generating Compilers
Compilers for functional languages, whether strict or nonstrict, typed or untyped, need to handle many of the same problems, for example thunks, lambda lifting, optimisation, garbage collection, and system interaction. Although implementation techniques are by now well understood, it remains difficult for a new functional language to exploit these techniques without either implementing a compil...
متن کاملOptimization Coaching for JavaScript
The performance of dynamic object-oriented programming languages such as JavaScript depends heavily on highly optimizing just-in-time compilers. Such compilers, like all compilers, can silently fall back to generating conservative, low-performance code during optimization. As a result, programmers may inadvertently cause performance issues on users’ systems by making seemingly inoffensive chang...
متن کاملHardware Supported Simulation System for Graph Based and 3d Cellular Processing 2 Regular Cellular Processing 2.1 Architecture for 3d
This paper presents results of a project in which a hardware supported simulation system for Cellular Processing (CP) is implemented. For three dimensional regular CP the hardware architecture, the cellular description language CDL and a method for the eecient generation of the sim-ulator kernel are explained. For irregular graph based CP the principal characteristics and their hardware support...
متن کاملCompositional Compiler Verification for a Multi-Language World
Verified compilers are typically proved correct under severe restrictions on what the compiler’s output may be linked with, from no linking at all to linking only with code compiled from the same source language. Such assumptions contradict the reality of how we use these compilers since most software systems today are comprised of components written in different languages compiled by different...
متن کامل